package com.gitee.wsl.service.updown

import kotlin.jvm.JvmInline

sealed interface UploadStatus {

    /**
     * Represents the progress of an upload
     * @param totalBytesSend The total bytes sent
     * @param contentLength The total bytes to send
     */
    //TODO: Replace with multi-field value class
    data class Progress(val totalBytesSend: Long, val contentLength: Long) : UploadStatus

    /**
     * Represents the success of an upload
     * @param response The response of the upload
     */
    @JvmInline
    value class Success(val response: FileUploadResponse) : UploadStatus

}